package com.sisgesbyte.services.administracion;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import com.sisgesbyte.common.ConstModAdministracion;
import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.common.Validaciones;
import com.sisgesbyte.dao.administracion.MantEstadosAtencionClienteDao;
import com.sisgesbyte.dao.beanDao.FiltrosSQLBean;
import com.sisgesbyte.data.entity.administracion.EstadosAtencionClienteEntity;
import com.sisgesbyte.services.administracion.bean.EstadosAtencionClienteBean;
import com.sisgesbyte.services.administracion.bean.ListaEstadosAtencionClienteResponse;

@Stateless
public class MantEstadosAtencionClienteServiceImpl implements
		MantEstadosAtencionClienteService {

	@EJB
	private MantEstadosAtencionClienteDao mantEstadosAtencionClienteDao;
	@Inject
	private Validaciones validaciones;
	
	
	@Override
	public ListaEstadosAtencionClienteResponse listaEstadosAtencionCliente(String codTransaccion,
			FiltrosSQLBean cadenaFiltros) {
		String mensajeTransaccionMetodo = "[listaEstadosAtencionCliente idTx=" + codTransaccion + "] - ";
		ListaEstadosAtencionClienteResponse response = new ListaEstadosAtencionClienteResponse();
		
		List<EstadosAtencionClienteEntity> listaEstados = null;
		try{
			listaEstados = mantEstadosAtencionClienteDao.listaEstadosAtencionCliente(cadenaFiltros);
		}catch(Exception e){
			System.out.println(mensajeTransaccionMetodo + "Hubo un error al listar " +e);
			response.setCodigoRespuesta(ConstModAdministracion.MANT_LISTAR_COD_IDT);
			response.setMensajeRespuesta(ConstModAdministracion.MANT_LISTAR_MSJ_IDT.replace("msj", mensajeTransaccionMetodo));
			return response;
		}
		
		if(listaEstados.size() > 0){
			List<EstadosAtencionClienteBean> lista =  new ArrayList<EstadosAtencionClienteBean>();
			for(EstadosAtencionClienteEntity ls : listaEstados){
				EstadosAtencionClienteBean bean = new EstadosAtencionClienteBean();
				bean.setId(ls.getId());
				bean.setNombre(validaciones.validarCamposString(ls.getNombre()));
				bean.setActive(ls.getActive());
				lista.add(bean);
			}
			response.setIdTransaccion(codTransaccion);
			response.setCodigoRespuesta(ConstantesInternasSistema.CODIGO_EXITO);
			response.setMensajeRespuesta(ConstantesInternasSistema.MENSAJE_EXITO);
			response.setListaEstadosAtencionCliente(lista);
		}else{
			response.setIdTransaccion(codTransaccion);
			response.setCodigoRespuesta(ConstModAdministracion.MANT_LISTAR_COD_IDF);
			response.setMensajeRespuesta(ConstModAdministracion.MANT_LISTAR_MSJ_IDF.replace("msj", mensajeTransaccionMetodo));
		}
		return response;
	}
}
